package com.ruoyi.reportTask.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 填报任务中心业务对象 industrial_report_task_center
 *
 * @author yangzhen
 * @date 2025-11-18
 */

@Data
@EqualsAndHashCode(callSuper = true)
@Schema(name = "IndustrialReportTaskCenterBo", description = "填报任务中心业务对象")
public class IndustrialReportTaskCenterBo extends BaseEntity {

    /**
     * 主键id
     */
    @Schema(description = "主键id")
    @NotBlank(message = "主键id不能为空", groups = { EditGroup.class })
    private String id;
    /**
     * 关联任务id
     */
    @Schema(description = "关联任务id")
    private String taskId;
    /**
     * 任务链接
     */
    @Schema(description = "任务链接")
    @NotBlank(message = "任务链接不能为空", groups = { AddGroup.class, EditGroup.class })
    private String taskUrl;

    /**
     * 任务名称
     */
    @Schema(description = "任务名称")
    @NotBlank(message = "任务名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String taskName;

    /**
     * 生成时间
     */
    @Schema(description = "生成时间")
    @NotNull(message = "生成时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date genDate;

    /**
     * 截止日期
     */
    @Schema(description = "截止日期")
    @NotNull(message = "截止日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date deadline;

    /**
     * 填报对象
     */
    @Schema(description = "填报对象")
    @NotBlank(message = "填报对象不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reportObj;

    /**
     * 填报周期
     */
    @Schema(description = "填报周期")
    @NotBlank(message = "填报周期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String reportCycle;

    /**
     * 任务状态
     */
    @Schema(description = "任务状态")
    @NotNull(message = "任务状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long taskStatus;

    /**
     * 发送数量
     */
    @Schema(description = "发送数量")
    @NotNull(message = "发送数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sendNum;

    /**
     * 备注
     */
    @Schema(description = "备注")
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remark;
    @Schema(description = "发送时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sendDate;

    /**
     * 数据采集周期
     */
    @Schema(description = "数据采集周期")
    private Date reportCollectDate;

    /**
     * 数据采集类型
     */
    @Schema(description = "数据采集类型")
    private String reportCollectType;

    /**
     * 模板集合
     */
    @Schema(description = "模板集合")
    private String  reportTemplate;

}
